# 1）奇偶排序
# 给定10个整数的序列，要求对其重新排序。排序要求:
# 1.奇数在前，偶数在后； 2.奇数按从大到小排序；3.偶数按从小到大排序。
# 样例输入：47 3 13 11 12 0 4 7 34 98
# 样例输出：47 13 11 7 3 0 4 12 34 98
def a(list):
    a1 = []  #偶数列表
    a2 = []  #奇数列表
    for i in list:
        if i % 2 == 0:
            a1.append(i)
            a11 = sorted(a1)
        else:
            a2.append(i)
            a22 = sorted(a2, reverse=True)
    a33 = a22 + a11
    print(a33)


list = [47, 3, 13, 11, 12, 0, 4, 7, 34, 98]
a(list)


# 2）定义一个函数，功能为查找列表中的元素，要求：如果有该元素，返回该元素对应的下标，如果没有该元素，返回None
#方法一，使用enumerate方法获取元素以及对应的下标
def aa(lst, element):
    # 遍历列表，同时获取索引和元素
    for index,values in enumerate(lst):
        if values == element:
            return index
    # 如果循环结束仍未找到，返回None
    return None
a2 = [12, 14, 36, 88, 123]
print(aa(a2, 88))

#方法二
def a11(ls,n):
   if n in ls:
       index1 = ls.index(n)
       return index1
   else :
       return "None"
ls = [1,2,3,5,7,8,53,56,78,89]
print(a11(ls,11))
print(a11(ls,78))

# 3）使用列表推导式过滤出以下列表中长度大于 3 的单词
# words = ['apple', 'banana', 'pie', 'orange', 'kiwi']
###列表推导法
words = ['apple', 'banana', 'pie', 'orange', 'kiwi']
a = [x for x in words if len(x) > 3]
print(a)
###高阶函数筛选filter
# word = ['apple', 'banana', 'pie', 'orange', 'kiwi']
# b11 = filter(lambda x:len(x)>3,word)
# print(list(b11))

# 5）国家列表
# a = ['中国', '阿根廷', '澳大利亚', '阿尔及利亚', '哈萨克斯坦', '俄罗斯', '巴西', '美国', '加拿大', '印度']
# 对应的国土面积
# b = [960, 278, 769.2, 238.1, 272.2, 1709.8, 851.4, 937, 998.4, 298]
# 根据国土面积对国家进行排序，打印结果（按国土大小顺序顺序）：
# 第1大的国土面积：国家名 = 国土面积
# 第2大的国土面积：国家名 = 国土面积
# ......
a = ['中国', '阿根廷', '澳大利亚', '阿尔及利亚', '哈萨克斯坦', '俄罗斯', '巴西', '美国', '加拿大', '印度']
b = [960, 278, 769.2, 238.1, 272.2, 1709.8, 851.4, 937, 998.4, 298]

def hh(list1,list2):
    c = {list1[i]: list2[i] for i in range(len(list1))}
    b1=sorted(c.items(), key=lambda x: x[1], reverse=True)
    result = []
    for rank, (country, area) in enumerate(b1, 1):
        result.append(f"第{rank}大的国土面积：{country} = {area}")
    return result

print(hh(a,b))

# 6)有一个学生列表，每个学生是一个字典，包含name和score。使用冒泡排序根据学生的分数(score)
# 对列表进行降序排列。
# 示例数据：
# students = [{'name': 'Alice', 'score': 95}, {'name': 'Bob', 'score': 88}, {'name': 'Charlie', 'score': 92}]
# 期望输出：
# [{'name': 'Alice', 'score': 95}, {'name': 'Charlie', 'score': 92}, {'name': 'Bob', 'score': 88}]
ls=[{'name': 'Alice', 'score': 95}, {'name': 'Charlie', 'score': 92}, {'name': 'Bob', 'score': 88}]
for i in range(0,len(ls)-1):
    for j in range(0,len(ls)-i-1):
        if ls[j]['score']<ls[j+1]['score']:
            ls[j],ls[j+1]=ls[j+1],ls[j]
print(ls)
